<!-- HTML header for doxygen 1.8.9.1-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<meta name="robots" content="NOINDEX, NOFOLLOW" /> <!-- Prevent indexing by search engines -->
<title>Compute Library: CLSubTensor Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { init_search(); });
</script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
</script><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">Compute Library
   &#160;<span id="projectnumber">18.03</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.xhtml"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.xhtml"><span>Related&#160;Pages</span></a></li>
      <li><a href="namespaces.xhtml"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.xhtml"><span>Data&#160;Structures</span></a></li>
      <li><a href="files.xhtml"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.xhtml"><span>Data&#160;Structures</span></a></li>
      <li><a href="classes.xhtml"><span>Data&#160;Structure&#160;Index</span></a></li>
      <li><a href="inherits.xhtml"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.xhtml"><span>Data&#160;Fields</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('classarm__compute_1_1_c_l_sub_tensor.xhtml','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a>  </div>
  <div class="headertitle">
<div class="title">CLSubTensor Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Basic implementation of the OpenCL sub-tensor interface.  
 <a href="classarm__compute_1_1_c_l_sub_tensor.xhtml#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="_c_l_sub_tensor_8h_source.xhtml">CLSubTensor.h</a>&gt;</code></p>
<div class="dynheader">
Collaboration diagram for CLSubTensor:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classarm__compute_1_1_c_l_sub_tensor__coll__graph.svg" width="115" height="187"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
<center><span class="legend">[<a target="top" href="graph_legend.xhtml">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a65fe9103d114c8677b9c62844f9d9b22"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_sub_tensor.xhtml#a65fe9103d114c8677b9c62844f9d9b22">CLSubTensor</a> (<a class="el" href="classarm__compute_1_1_i_c_l_tensor.xhtml">ICLTensor</a> *<a class="el" href="classarm__compute_1_1_c_l_sub_tensor.xhtml#a47e6fa052a1d4a5db6dbf14126faa7ab">parent</a>, const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &amp;tensor_shape, const <a class="el" href="classarm__compute_1_1_coordinates.xhtml">Coordinates</a> &amp;coords, bool extend_parent=false)</td></tr>
<tr class="memdesc:a65fe9103d114c8677b9c62844f9d9b22"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor.  <a href="#a65fe9103d114c8677b9c62844f9d9b22">More...</a><br /></td></tr>
<tr class="separator:a65fe9103d114c8677b9c62844f9d9b22"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3f3d38e602db0a6af8ac5e932d798617"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_sub_tensor.xhtml#a3f3d38e602db0a6af8ac5e932d798617">~CLSubTensor</a> ()=default</td></tr>
<tr class="memdesc:a3f3d38e602db0a6af8ac5e932d798617"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor: free the tensor's memory.  <a href="#a3f3d38e602db0a6af8ac5e932d798617">More...</a><br /></td></tr>
<tr class="separator:a3f3d38e602db0a6af8ac5e932d798617"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3770cb2663115441657ca172d0df5bc5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_sub_tensor.xhtml#a3770cb2663115441657ca172d0df5bc5">CLSubTensor</a> (const <a class="el" href="classarm__compute_1_1_c_l_sub_tensor.xhtml">CLSubTensor</a> &amp;)=delete</td></tr>
<tr class="memdesc:a3770cb2663115441657ca172d0df5bc5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Restrict instances of this class to be copy constructed.  <a href="#a3770cb2663115441657ca172d0df5bc5">More...</a><br /></td></tr>
<tr class="separator:a3770cb2663115441657ca172d0df5bc5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9e7404a38329c9f1fcce42b8098dc6f9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_c_l_sub_tensor.xhtml">CLSubTensor</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_sub_tensor.xhtml#a9e7404a38329c9f1fcce42b8098dc6f9">operator=</a> (const <a class="el" href="classarm__compute_1_1_c_l_sub_tensor.xhtml">CLSubTensor</a> &amp;)=delete</td></tr>
<tr class="memdesc:a9e7404a38329c9f1fcce42b8098dc6f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Restrict instances of this class to be copied.  <a href="#a9e7404a38329c9f1fcce42b8098dc6f9">More...</a><br /></td></tr>
<tr class="separator:a9e7404a38329c9f1fcce42b8098dc6f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a65c6e5ec2b8035889c3114462010b612"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_sub_tensor.xhtml#a65c6e5ec2b8035889c3114462010b612">CLSubTensor</a> (<a class="el" href="classarm__compute_1_1_c_l_sub_tensor.xhtml">CLSubTensor</a> &amp;&amp;)=default</td></tr>
<tr class="memdesc:a65c6e5ec2b8035889c3114462010b612"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allow instances of this class to be move constructed.  <a href="#a65c6e5ec2b8035889c3114462010b612">More...</a><br /></td></tr>
<tr class="separator:a65c6e5ec2b8035889c3114462010b612"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aee53085b838758adfce05657de25f5c5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_c_l_sub_tensor.xhtml">CLSubTensor</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_sub_tensor.xhtml#aee53085b838758adfce05657de25f5c5">operator=</a> (<a class="el" href="classarm__compute_1_1_c_l_sub_tensor.xhtml">CLSubTensor</a> &amp;&amp;)=default</td></tr>
<tr class="memdesc:aee53085b838758adfce05657de25f5c5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allow instances of this class to be moved.  <a href="#aee53085b838758adfce05657de25f5c5">More...</a><br /></td></tr>
<tr class="separator:aee53085b838758adfce05657de25f5c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a14c53d2d17be6fa8a2c9861527c7b002"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_sub_tensor.xhtml#a14c53d2d17be6fa8a2c9861527c7b002">map</a> (bool blocking=true)</td></tr>
<tr class="memdesc:a14c53d2d17be6fa8a2c9861527c7b002"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enqueue a map operation of the allocated buffer.  <a href="#a14c53d2d17be6fa8a2c9861527c7b002">More...</a><br /></td></tr>
<tr class="separator:a14c53d2d17be6fa8a2c9861527c7b002"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1ffeb3b5abb3d61f62b58a391816201c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_sub_tensor.xhtml#a1ffeb3b5abb3d61f62b58a391816201c">unmap</a> ()</td></tr>
<tr class="memdesc:a1ffeb3b5abb3d61f62b58a391816201c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enqueue an unmap operation of the allocated and mapped buffer.  <a href="#a1ffeb3b5abb3d61f62b58a391816201c">More...</a><br /></td></tr>
<tr class="separator:a1ffeb3b5abb3d61f62b58a391816201c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a47e6fa052a1d4a5db6dbf14126faa7ab"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_i_c_l_tensor.xhtml">ICLTensor</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_sub_tensor.xhtml#a47e6fa052a1d4a5db6dbf14126faa7ab">parent</a> ()</td></tr>
<tr class="memdesc:a47e6fa052a1d4a5db6dbf14126faa7ab"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the parent tensor of the subtensor.  <a href="#a47e6fa052a1d4a5db6dbf14126faa7ab">More...</a><br /></td></tr>
<tr class="separator:a47e6fa052a1d4a5db6dbf14126faa7ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa68535e0983cc60a425253a72b162661"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_sub_tensor.xhtml#aa68535e0983cc60a425253a72b162661">info</a> () const override</td></tr>
<tr class="memdesc:aa68535e0983cc60a425253a72b162661"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface to be implemented by the child class to return the tensor's metadata.  <a href="#aa68535e0983cc60a425253a72b162661">More...</a><br /></td></tr>
<tr class="separator:aa68535e0983cc60a425253a72b162661"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8535070d127b492c6f2aeaf1ac2aae5b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_sub_tensor.xhtml#a8535070d127b492c6f2aeaf1ac2aae5b">info</a> () override</td></tr>
<tr class="memdesc:a8535070d127b492c6f2aeaf1ac2aae5b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface to be implemented by the child class to return the tensor's metadata.  <a href="#a8535070d127b492c6f2aeaf1ac2aae5b">More...</a><br /></td></tr>
<tr class="separator:a8535070d127b492c6f2aeaf1ac2aae5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afd44a3d7dad6d984b1b87bc9f1b4fa02"><td class="memItemLeft" align="right" valign="top">const cl::Buffer &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_c_l_sub_tensor.xhtml#afd44a3d7dad6d984b1b87bc9f1b4fa02">cl_buffer</a> () const override</td></tr>
<tr class="memdesc:afd44a3d7dad6d984b1b87bc9f1b4fa02"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface to be implemented by the child class to return a reference to the OpenCL buffer containing the image's data.  <a href="#afd44a3d7dad6d984b1b87bc9f1b4fa02">More...</a><br /></td></tr>
<tr class="separator:afd44a3d7dad6d984b1b87bc9f1b4fa02"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classarm__compute_1_1_i_c_l_tensor"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classarm__compute_1_1_i_c_l_tensor')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classarm__compute_1_1_i_c_l_tensor.xhtml">ICLTensor</a></td></tr>
<tr class="memitem:a64399eb327ea2e4ecd2c8086a8dc01ce inherit pub_methods_classarm__compute_1_1_i_c_l_tensor"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_c_l_tensor.xhtml#a64399eb327ea2e4ecd2c8086a8dc01ce">ICLTensor</a> ()</td></tr>
<tr class="separator:a64399eb327ea2e4ecd2c8086a8dc01ce inherit pub_methods_classarm__compute_1_1_i_c_l_tensor"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad49b11e9c7276ca78046ad4c339cd7c6 inherit pub_methods_classarm__compute_1_1_i_c_l_tensor"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_c_l_tensor.xhtml#ad49b11e9c7276ca78046ad4c339cd7c6">ICLTensor</a> (const <a class="el" href="classarm__compute_1_1_i_c_l_tensor.xhtml">ICLTensor</a> &amp;)=delete</td></tr>
<tr class="separator:ad49b11e9c7276ca78046ad4c339cd7c6 inherit pub_methods_classarm__compute_1_1_i_c_l_tensor"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af72219f9b5e8803950eb8863a23c076e inherit pub_methods_classarm__compute_1_1_i_c_l_tensor"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_i_c_l_tensor.xhtml">ICLTensor</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_c_l_tensor.xhtml#af72219f9b5e8803950eb8863a23c076e">operator=</a> (const <a class="el" href="classarm__compute_1_1_i_c_l_tensor.xhtml">ICLTensor</a> &amp;)=delete</td></tr>
<tr class="separator:af72219f9b5e8803950eb8863a23c076e inherit pub_methods_classarm__compute_1_1_i_c_l_tensor"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae81da2706cd5717c6c4d7cea239a1e03 inherit pub_methods_classarm__compute_1_1_i_c_l_tensor"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_c_l_tensor.xhtml#ae81da2706cd5717c6c4d7cea239a1e03">ICLTensor</a> (<a class="el" href="classarm__compute_1_1_i_c_l_tensor.xhtml">ICLTensor</a> &amp;&amp;)=default</td></tr>
<tr class="separator:ae81da2706cd5717c6c4d7cea239a1e03 inherit pub_methods_classarm__compute_1_1_i_c_l_tensor"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6a7368baa4f8580ea732b2a352217b80 inherit pub_methods_classarm__compute_1_1_i_c_l_tensor"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_i_c_l_tensor.xhtml">ICLTensor</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_c_l_tensor.xhtml#a6a7368baa4f8580ea732b2a352217b80">operator=</a> (<a class="el" href="classarm__compute_1_1_i_c_l_tensor.xhtml">ICLTensor</a> &amp;&amp;)=default</td></tr>
<tr class="separator:a6a7368baa4f8580ea732b2a352217b80 inherit pub_methods_classarm__compute_1_1_i_c_l_tensor"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa0bce17c5cd01f2b45cc59afd615913e inherit pub_methods_classarm__compute_1_1_i_c_l_tensor"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_c_l_tensor.xhtml#aa0bce17c5cd01f2b45cc59afd615913e">~ICLTensor</a> ()=default</td></tr>
<tr class="separator:aa0bce17c5cd01f2b45cc59afd615913e inherit pub_methods_classarm__compute_1_1_i_c_l_tensor"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac0abc7a5c0d172947f0e6a0c0dde3df0 inherit pub_methods_classarm__compute_1_1_i_c_l_tensor"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_c_l_tensor.xhtml#ac0abc7a5c0d172947f0e6a0c0dde3df0">map</a> (cl::CommandQueue &amp;q, bool blocking=true)</td></tr>
<tr class="memdesc:ac0abc7a5c0d172947f0e6a0c0dde3df0 inherit pub_methods_classarm__compute_1_1_i_c_l_tensor"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enqueue a map operation of the allocated buffer on the given queue.  <a href="#ac0abc7a5c0d172947f0e6a0c0dde3df0">More...</a><br /></td></tr>
<tr class="separator:ac0abc7a5c0d172947f0e6a0c0dde3df0 inherit pub_methods_classarm__compute_1_1_i_c_l_tensor"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af974a2360069c2ef8df4496d00e4f6cc inherit pub_methods_classarm__compute_1_1_i_c_l_tensor"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_c_l_tensor.xhtml#af974a2360069c2ef8df4496d00e4f6cc">unmap</a> (cl::CommandQueue &amp;q)</td></tr>
<tr class="memdesc:af974a2360069c2ef8df4496d00e4f6cc inherit pub_methods_classarm__compute_1_1_i_c_l_tensor"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enqueue an unmap operation of the allocated and mapped buffer on the given queue.  <a href="#af974a2360069c2ef8df4496d00e4f6cc">More...</a><br /></td></tr>
<tr class="separator:af974a2360069c2ef8df4496d00e4f6cc inherit pub_methods_classarm__compute_1_1_i_c_l_tensor"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b94593f2b06f00d380ec3a3e6abccb2 inherit pub_methods_classarm__compute_1_1_i_c_l_tensor"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_c_l_tensor.xhtml#a7b94593f2b06f00d380ec3a3e6abccb2">clear</a> (cl::CommandQueue &amp;q)</td></tr>
<tr class="memdesc:a7b94593f2b06f00d380ec3a3e6abccb2 inherit pub_methods_classarm__compute_1_1_i_c_l_tensor"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear the contents of the tensor synchronously.  <a href="#a7b94593f2b06f00d380ec3a3e6abccb2">More...</a><br /></td></tr>
<tr class="separator:a7b94593f2b06f00d380ec3a3e6abccb2 inherit pub_methods_classarm__compute_1_1_i_c_l_tensor"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ace7b855e3c647d29cc37a1ce147901dc inherit pub_methods_classarm__compute_1_1_i_c_l_tensor"><td class="memItemLeft" align="right" valign="top">uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_c_l_tensor.xhtml#ace7b855e3c647d29cc37a1ce147901dc">buffer</a> () const override</td></tr>
<tr class="memdesc:ace7b855e3c647d29cc37a1ce147901dc inherit pub_methods_classarm__compute_1_1_i_c_l_tensor"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface to be implemented by the child class to return a pointer to CPU memory.  <a href="#ace7b855e3c647d29cc37a1ce147901dc">More...</a><br /></td></tr>
<tr class="separator:ace7b855e3c647d29cc37a1ce147901dc inherit pub_methods_classarm__compute_1_1_i_c_l_tensor"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classarm__compute_1_1_i_tensor"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classarm__compute_1_1_i_tensor')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classarm__compute_1_1_i_tensor.xhtml">ITensor</a></td></tr>
<tr class="memitem:a4aa2df36743089ac6814d83e7d4b7ffc inherit pub_methods_classarm__compute_1_1_i_tensor"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_tensor.xhtml#a4aa2df36743089ac6814d83e7d4b7ffc">~ITensor</a> ()=default</td></tr>
<tr class="memdesc:a4aa2df36743089ac6814d83e7d4b7ffc inherit pub_methods_classarm__compute_1_1_i_tensor"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default virtual destructor.  <a href="#a4aa2df36743089ac6814d83e7d4b7ffc">More...</a><br /></td></tr>
<tr class="separator:a4aa2df36743089ac6814d83e7d4b7ffc inherit pub_methods_classarm__compute_1_1_i_tensor"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a48c7a05cc63f541d732250e39339cee2 inherit pub_methods_classarm__compute_1_1_i_tensor"><td class="memItemLeft" align="right" valign="top">uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_tensor.xhtml#a48c7a05cc63f541d732250e39339cee2">ptr_to_element</a> (const <a class="el" href="classarm__compute_1_1_coordinates.xhtml">Coordinates</a> &amp;<a class="el" href="hwc_8hpp.xhtml#abaabdc509cdaba7df9f56c6c76f3ae19">id</a>) const </td></tr>
<tr class="memdesc:a48c7a05cc63f541d732250e39339cee2 inherit pub_methods_classarm__compute_1_1_i_tensor"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer to the element at the passed coordinates.  <a href="#a48c7a05cc63f541d732250e39339cee2">More...</a><br /></td></tr>
<tr class="separator:a48c7a05cc63f541d732250e39339cee2 inherit pub_methods_classarm__compute_1_1_i_tensor"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4a774ad8d5f4837f3d7de1876d367c5b inherit pub_methods_classarm__compute_1_1_i_tensor"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_tensor.xhtml#a4a774ad8d5f4837f3d7de1876d367c5b">copy_from</a> (const <a class="el" href="classarm__compute_1_1_i_tensor.xhtml">ITensor</a> &amp;src)</td></tr>
<tr class="memdesc:a4a774ad8d5f4837f3d7de1876d367c5b inherit pub_methods_classarm__compute_1_1_i_tensor"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy the content of another tensor.  <a href="#a4a774ad8d5f4837f3d7de1876d367c5b">More...</a><br /></td></tr>
<tr class="separator:a4a774ad8d5f4837f3d7de1876d367c5b inherit pub_methods_classarm__compute_1_1_i_tensor"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b092c86d6e0fb8a114281565953a02a inherit pub_methods_classarm__compute_1_1_i_tensor"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_tensor.xhtml#a0b092c86d6e0fb8a114281565953a02a">print</a> (std::ostream &amp;s, <a class="el" href="structarm__compute_1_1_i_o_format_info.xhtml">IOFormatInfo</a> io_fmt=<a class="el" href="structarm__compute_1_1_i_o_format_info.xhtml">IOFormatInfo</a>()) const </td></tr>
<tr class="memdesc:a0b092c86d6e0fb8a114281565953a02a inherit pub_methods_classarm__compute_1_1_i_tensor"><td class="mdescLeft">&#160;</td><td class="mdescRight">Print a tensor to a given stream using user defined formatting information.  <a href="#a0b092c86d6e0fb8a114281565953a02a">More...</a><br /></td></tr>
<tr class="separator:a0b092c86d6e0fb8a114281565953a02a inherit pub_methods_classarm__compute_1_1_i_tensor"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Basic implementation of the OpenCL sub-tensor interface. </p>

<p>Definition at line <a class="el" href="_c_l_sub_tensor_8h_source.xhtml#l00037">37</a> of file <a class="el" href="_c_l_sub_tensor_8h_source.xhtml">CLSubTensor.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a65fe9103d114c8677b9c62844f9d9b22"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classarm__compute_1_1_c_l_sub_tensor.xhtml">CLSubTensor</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classarm__compute_1_1_i_c_l_tensor.xhtml">ICLTensor</a> *&#160;</td>
          <td class="paramname"><em>parent</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classarm__compute_1_1_tensor_shape.xhtml">TensorShape</a> &amp;&#160;</td>
          <td class="paramname"><em>tensor_shape</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classarm__compute_1_1_coordinates.xhtml">Coordinates</a> &amp;&#160;</td>
          <td class="paramname"><em>coords</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>extend_parent</em> = <code>false</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Constructor. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">parent</td><td>Parent tensor </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">tensor_shape</td><td>Shape of the subtensor </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">coords</td><td><a class="el" href="classarm__compute_1_1_coordinates.xhtml" title="Coordinates of an item. ">Coordinates</a> of the first subtensor element inside the parent tensor. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">extend_parent</td><td>(Optional) Extend parent with subtensor shape if subtensor indexes out of bounds </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a3f3d38e602db0a6af8ac5e932d798617"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">~<a class="el" href="classarm__compute_1_1_c_l_sub_tensor.xhtml">CLSubTensor</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">default</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Destructor: free the tensor's memory. </p>

</div>
</div>
<a class="anchor" id="a3770cb2663115441657ca172d0df5bc5"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classarm__compute_1_1_c_l_sub_tensor.xhtml">CLSubTensor</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classarm__compute_1_1_c_l_sub_tensor.xhtml">CLSubTensor</a> &amp;&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">delete</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Restrict instances of this class to be copy constructed. </p>

</div>
</div>
<a class="anchor" id="a65c6e5ec2b8035889c3114462010b612"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classarm__compute_1_1_c_l_sub_tensor.xhtml">CLSubTensor</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classarm__compute_1_1_c_l_sub_tensor.xhtml">CLSubTensor</a> &amp;&amp;&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">default</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Allow instances of this class to be move constructed. </p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="afd44a3d7dad6d984b1b87bc9f1b4fa02"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const cl::Buffer&amp; cl_buffer </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Interface to be implemented by the child class to return a reference to the OpenCL buffer containing the image's data. </p>
<dl class="section return"><dt>Returns</dt><dd>A reference to an OpenCL buffer containing the image's data. </dd></dl>

<p>Implements <a class="el" href="classarm__compute_1_1_i_c_l_tensor.xhtml#a1fb4c50755a0ef424652246838ed91a6">ICLTensor</a>.</p>

</div>
</div>
<a class="anchor" id="aa68535e0983cc60a425253a72b162661"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a>* info </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Interface to be implemented by the child class to return the tensor's metadata. </p>
<dl class="section return"><dt>Returns</dt><dd>A pointer to the tensor's metadata. </dd></dl>

<p>Implements <a class="el" href="classarm__compute_1_1_i_tensor.xhtml#a0e95dc1e53c361348314873b168ae237">ITensor</a>.</p>

</div>
</div>
<a class="anchor" id="a8535070d127b492c6f2aeaf1ac2aae5b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classarm__compute_1_1_i_tensor_info.xhtml">ITensorInfo</a>* info </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Interface to be implemented by the child class to return the tensor's metadata. </p>
<dl class="section return"><dt>Returns</dt><dd>A pointer to the tensor's metadata. </dd></dl>

<p>Implements <a class="el" href="classarm__compute_1_1_i_tensor.xhtml#a7e6b5e55a2914b1fb1966310e7733ac4">ITensor</a>.</p>

</div>
</div>
<a class="anchor" id="a14c53d2d17be6fa8a2c9861527c7b002"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void map </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>blocking</em> = <code>true</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Enqueue a map operation of the allocated buffer. </p>
<dl class="section note"><dt>Note</dt><dd>Mapping a subtensor will lead to the mapping of the whole parent tensor for now.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">blocking</td><td>If true, then the mapping will be ready to use by the time this method returns, else it is the caller's responsibility to flush the queue and wait for the mapping operation to have completed. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a9e7404a38329c9f1fcce42b8098dc6f9"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classarm__compute_1_1_c_l_sub_tensor.xhtml">CLSubTensor</a>&amp; operator= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classarm__compute_1_1_c_l_sub_tensor.xhtml">CLSubTensor</a> &amp;&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">delete</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Restrict instances of this class to be copied. </p>

</div>
</div>
<a class="anchor" id="aee53085b838758adfce05657de25f5c5"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classarm__compute_1_1_c_l_sub_tensor.xhtml">CLSubTensor</a>&amp; operator= </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classarm__compute_1_1_c_l_sub_tensor.xhtml">CLSubTensor</a> &amp;&amp;&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">default</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Allow instances of this class to be moved. </p>

</div>
</div>
<a class="anchor" id="a47e6fa052a1d4a5db6dbf14126faa7ab"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classarm__compute_1_1_i_c_l_tensor.xhtml">ICLTensor</a>* parent </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Return the parent tensor of the subtensor. </p>
<dl class="section return"><dt>Returns</dt><dd>Parent tensor </dd></dl>

</div>
</div>
<a class="anchor" id="a1ffeb3b5abb3d61f62b58a391816201c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void unmap </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Enqueue an unmap operation of the allocated and mapped buffer. </p>
<dl class="section note"><dt>Note</dt><dd>Unmapping a subtensor will lead to the unmapping of the whole parent tensor for now.</dd>
<dd>
This method simply enqueues the unmap operation, it is the caller's responsibility to flush the queue and make sure the unmap is finished before the memory is accessed by the device. </dd></dl>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>arm_compute/runtime/CL/<a class="el" href="_c_l_sub_tensor_8h_source.xhtml">CLSubTensor.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="namespacearm__compute.xhtml">arm_compute</a></li><li class="navelem"><a class="el" href="classarm__compute_1_1_c_l_sub_tensor.xhtml">CLSubTensor</a></li>
    <li class="footer">Generated on Fri Mar 2 2018 12:37:58 for Compute Library by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.11 </li>
  </ul>
</div>
</body>
</html>
